home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / dateimanager / browserii_v3_09 / sources / makelink.c < prev    next >
C/C++ Source or Header  |  1996-04-07  |  1KB  |  55 lines

  1. /*
  2.  *    MakeLink.c - Copyright © 1991 by Devil's child.
  3.  *
  4.  *    Created:    26 Nov 1992  21:42:25
  5.  *    Modified:    02 Oct 1994  11:09:30
  6.  *
  7.  *    Make>> sc <file>.c
  8.  *    Make>> slink <file>.o SC SD ND BATCH NOICONS TO <file>
  9.  */
  10.  
  11. #define ARG_FROM    0 
  12. #define ARG_TO        1
  13.  
  14. long _main(void)
  15. {
  16.     struct ExecBase *SysBase = *((struct ExecBase **)4L);
  17.     struct DosLibrary *DOSBase;
  18.     APTR UtilityBase;
  19.     char FromPath[256];
  20.     struct RDArgs *RA;
  21.     char *Argv[] = { NULL, NULL, NULL };
  22.     BPTR FromDir, L;
  23.     long rc=20;
  24.  
  25.     if (DOSBase = (struct DosLibrary *)OpenLibrary("dos.library", 37)) {
  26.         UtilityBase = DOSBase->dl_UtilityBase;
  27.         if (RA = ReadArgs("From/A,To/A", (long *)Argv, NULL)) {
  28.             strcpy(FromPath, Argv[ARG_FROM]);
  29.             *PathPart(FromPath) = '\0';
  30.             if (FromDir = Lock(FromPath, ACCESS_READ)) {
  31.                 if (L = Lock(Argv[ARG_TO], ACCESS_READ)) {
  32.                     if (SameLock(FromDir, L) == LOCK_DIFFERENT) {
  33.                         if (MakeLink(Argv[ARG_FROM], (long)Argv[ARG_TO], LINK_SOFT))
  34.                             rc = 0;
  35.                     }
  36.                     else {
  37.                         if (MakeLink(Argv[ARG_FROM], L, LINK_HARD))
  38.                             rc = 0;
  39.                     }
  40.                     UnLock(L);
  41.                 }
  42.                 UnLock(FromDir);
  43.             }
  44.             FreeArgs(RA);
  45.         }
  46.         if (rc)
  47.             PrintFault(IoErr(), "MakeLink");
  48.         CloseLibrary((struct Library *)DOSBase);
  49.     }
  50.     return rc;
  51. }
  52.  
  53. static const char Ver[] = "$VER:MakeLink 41.0 (01.10.94)";
  54.  
  55.